package org.groupg.project.devenvinit.systemenv;

import cn.hutool.system.OsInfo;
import cn.hutool.system.SystemUtil;
import org.groupg.project.devenvinit.systemenv.impl.Linux;
import org.groupg.project.devenvinit.systemenv.impl.Mac;
import org.groupg.project.devenvinit.systemenv.impl.Windows;

public class SystemEnvFactory {
    SystemEnv systemEnv = null;

    public SystemEnv createDefault(){

        if (systemEnv != null) return systemEnv;

        OsInfo os = SystemUtil.getOsInfo();
        if (os.isWindows()){
            systemEnv = new Windows(os.getName(),os.getVersion());
        }else if (os.isMac()){
            systemEnv = new Mac(os.getName(),os.getVersion());
        }else if (os.isLinux()){
            systemEnv = new Linux(os.getName(),os.getVersion());
        }
        systemEnv.init();
        return systemEnv;
    }
}
